Исходный текст
Option Explicit
Call RemoveObject()
'==============================================================================
'Открыть диалог удаления выбранного пользователем объекта
'==============================================================================
Sub RemoveObject()
Dim SelObjDlg, selObj, RemoveObjDlg, RetVal, ParentObj
'Открыть диалог выбора объекта
Set SelObjDlg = ThisApplication.Dialogs.SelectObjectDlg
SelObjDlg.Caption = "Выберите объект для удаления"
RetVal = SelObjDlg.Show
'Если выбрано несколько объектов, они будут удалены поочередно
If RetVal And SelObjDlg.Objects.Count > 0 Then
For Each selObj In SelObjDlg.Objects
'Открыть диалог удаления выбранного объекта
Set RemoveObjDlg = ThisApplication.Dialogs.RemoveObjectDlg
RemoveObjDlg.Object = selObj
'У диалога есть свойство ParentObject. Если оно не задано, объект
'можно будет удалить только из системы. Попробуем найти контейнер
If Not (selObj.Parent Is Nothing) Then
RemoveObjDlg.ParentObject = selObj.Parent
ElseIf selObj.Uplinks.Count<>0 Then
RemoveObjDlg.ParentObject = selObj.Uplinks(0)
End If
'Показать диалог
RemoveObjDlg.Show
Next
End If
End Sub
'==============================================================================